package ahp.client.layouts;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.TreeMap;

import ahp.client.Osoba;

import com.google.gwt.i18n.client.NumberFormat;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;

public class WynikLayout extends Composite {

	public final FlowPanel main = new FlowPanel();
	public final FlowPanel content_wynik = new FlowPanel();
	public final FlowPanel warning = new FlowPanel();
	Image img;
	
	boolean first=true;
	
	ArrayList<Osoba> wybrane_kandydatki;
	
	public WynikLayout(ArrayList<String> niespojne,TreeMap<String, Double> wynik,ArrayList<Osoba> _wybrane_kandydatki){
		
		wybrane_kandydatki=_wybrane_kandydatki;
		
		initWidget(main);
		main.addStyleName("wynik");
		main.add(content_wynik);
		content_wynik.addStyleName("content_wynik");
		
		warning.addStyleName("warnings");
		
		System.out.println("\n \n \n");
		int nr_os=0;
		Iterator entries=wynik.entrySet().iterator();
		
		for(Entry<String, Double> thisEntry:wynik.entrySet()){
			nr_os++;
			if(first){
				
				Osoba os=znajdz((String) thisEntry.getKey());
				
				double punkty=thisEntry.getValue();
				
				
				String formatted=NumberFormat.getFormat("0.00").format(punkty);
				img= new Image(os.picture_url);
				Label l=new Label(nr_os + " " +os.imie + " z punktacją: " +formatted);
				l.addStyleName("imie");
				FlowPanel first_panel=new FlowPanel();
				first_panel.addStyleName("first");
				first_panel.add(l);
				first_panel.add(img);
				content_wynik.add(first_panel);
				first=false;
				
				Label l2=new Label("Na pozostałych miejscach są:");
				l2.setStyleName("title");
				content_wynik.add(l2);
				
			}
			else{
				double punkty=thisEntry.getValue();
				String formatted=NumberFormat.getFormat("0.00").format(punkty);
				Label l=new Label(nr_os + " " + (String) thisEntry.getKey()+ " z punktacją: " +formatted);
				l.addStyleName("imie");
				content_wynik.add(l);
				
			}			
		}
		
//		while(entries.hasNext()){
//			Entry thisEntry = (Entry) entries.next();
//			nr_os++;
//			if(first){
//				
//				Osoba os=znajdz((String) thisEntry.getKey());
//				
//				double punkty=thisEntry.getValue();
//				
//				
//				String formatted=NumberFormat.getFormat("0.00").format(punkty);
//				img= new Image(os.picture_url);
//				Label l=new Label(nr_os + " " +os.imie + "z punktacją: " +formatted);
//				l.addStyleName("imie");
//				FlowPanel first_panel=new FlowPanel();
//				first_panel.addStyleName("first");
//				first_panel.add(l);
//				first_panel.add(img);
//				content_wynik.add(first_panel);
//				first=false;
//				
//				Label l2=new Label("Na pozostałych miejscach są:");
//				l2.setStyleName("title");
//				content_wynik.add(l2);
//				
//			}
//			else{
//				Label l=new Label(nr_os + " " + (String) thisEntry.getKey());
//				l.addStyleName("imie");
//				content_wynik.add(l);
//				
//			}
//		}
		
		
		//pokazywanie warningów
		
		if(niespojne.size()>0){
			Label main_l=new Label("Wyniki moga odbiegac od oczekiwan ze wzgledu na niescislosci ocen kategorii:");
			main.add(warning);
			warning.add(main_l);
			
			for (String nazwa : niespojne) {
				
				Label l=new Label(nazwa);
				warning.add(l);
			}
			
		}
		
		
	}

	Osoba znajdz(String imie){
		
		for (Osoba o : wybrane_kandydatki) {
			
			if(o.imie==imie){
				return o;
			}
			
		}
		return null;
		
	}
	
}
